草庐IT

Lua 垃圾回收

全部标签

java - C++ 破坏了我的想法,如何信任自动垃圾收集器?

我过去主要使用C/C++进行编程,这让我每天都要处理指针和内存管理。这些天我正在尝试使用其他工具进行开发,例如Java、Python和Ruby。问题是我一直在思考C++风格,我编写的代码就像通常用几乎所有编程语言编写的C++一样,最大的问题是内存管理,我一直在使用Java中的引用编写糟糕的代码,结果就像尽可能接近C++风格。所以我在这里需要2个想法,一个是相信垃圾收集器,比方说通过查看基准和证明它确实在Java中工作,并且知道我永远不应该做什么才能使我的代码达到最佳状态是。第二个想法是知道如何编写其他语言的代码。我的意思是我知道该怎么做,我只是从来没有像大多数Java或Python程序

智能垃圾桶项目【课程设计】【全套开源】

手把手带做【智能垃圾桶项目】【全套开源】1.项目介绍1.1功能描述当物体接近垃圾桶时,垃圾桶自动打开,并有"嘀"的一声;当远离垃圾桶后,自动关闭;当按下按键时,垃圾桶也可以自动打开,并有"嘀"的一声;当感受到震动时,也自动打开,(同上)垃圾桶开时,led1灯开,led2灯关;当垃圾桶关时,led1灯关,led2灯开1.2所需器件SG90舵机,超声波模块HC-SR04,震动传感器,蜂鸣器模块不熟悉没关系,下面的描述和代码都很详细;2.元器件器件描述2.1STC89C51/52为了快速做出项目,我们一边介绍项目所需元器件,一边写代码,原理类的东西带过一下。首先,基本的led1、led2,key1。

c++ - Lua,我可以禁用 C++ 中的部分语言吗?

假设我在C++应用程序中嵌入了Lua。这个问题听起来可能很奇怪,但我很感兴趣,是否有一种标准方法可以从C++端禁用Lua功能?例如,我想禁用新变量的创建,除了一些已定义的变量,如下所示:localtime=10localsize=20functiontest()returntime*sizeend如果我定义了time、size和test函数以外的任何东西,我想让LuaVM失败。这可能不破解VM本身吗?或者例如我想禁用循环(for和while语句)。 最佳答案 限制可以创建或访问的global变量的名称很容易:只需将您的脚本加载到具有

c++ - 当我在测试期间手动设置 errno 时,strerror_r 返回垃圾

在测试期间,我有一个模拟对象,它设置了errno=ETIMEDOUT;我正在测试的对象看到错误并调用strerror_r取回错误字符串:if(ret){if(ret==EAI_SYSTEM){charerr[128];strerror_r(errno,err,128);err_string.assign(err);}else{err_string.assign(gai_strerror(ret));}returnret;}我不明白为什么strerror_r返回垃圾。我什至试过打电话strerror_r(ETIMEDOUT,err,128)直接但仍然有垃圾。我肯定错过了什么。看来我得到的

基于微信小程序的社区垃圾回收管理系统+ssm后端源码和论文

社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。所以各大互联网厂商都瞄准移动互联网这个潮流进行各大布局,经过多年的大浪淘沙,各种移动操作系统的不断面世,而目前市场占有率最高的就是微信小程序,本次开发一套基于微信小程序的社区垃圾回收管理系统,有管理员,回收员,用户三个角色。管理员功能有个人中心,用户管理,回收员管理,废品类型管理,废品回收管理,废品订单管理,系统管理等。回收员和用户都可以在微信小程序注册登录,回收员发布废品信息,用户看到回收员发布的信息后提交自己这边多少,回收员看到订单

c++ - 如何将 C++ 成员方法和成员变量与 Lua C API 绑定(bind)?

到目前为止,我所做的所有谷歌搜索都发现了一些非常接近的东西,但还没有完全符合我想要做的事情。让我用最基本的方式描述一下:假设您有一个C++类classA{public:intMethod();intVariable;};现在假设您实例化A*Foo;现在假设您有一个包含以下3行函数的.lua文件:functionTest()localn=Foo:Method();Foo.Variable=0;localm=Foo.Variable;end如何将对象A*绑定(bind)到lua以便所有这些事情都可行?伪代码方面,我的第一次尝试是这样的,部分来自复制粘贴示例:在只调用一次的函数中,不管A的实

c++ - 垃圾收集器 C++

我一直在尝试用C++创建一个垃圾收集器,我将它设计为我所有垃圾收集器的基类,称为garbageCandidate,它包含一个静态vector,其中包含指向garbageCandidate的指针,每个garbageCollector实例都推送“this”在载体上。然后一个静态函数来了,删除静态vector中的所有指针。在删除函数的最开始(在第一个指针上删除)我得到一个错误,指出删除被用于无效指针...这与静态/动态绑定(bind)有关吗?我的意思是:删除运算符是否无法按预期运行,因为我在“父”类上调用delete而它实际上是一个子类?避免这种情况的方法是创建虚拟析构函数吗?(或虚拟删除功

2024最新免费的mac电脑清理垃圾的软件有哪些?

mac电脑是许多人喜爱的电子产品,它拥有优美的设计、流畅的操作系统和强大的性能。但是,随着使用时间的增长,mac电脑也会积累一些不必要的垃圾文件,这些文件会占用宝贵的存储空间,影响电脑的运行速度和稳定性。因此,定期清理mac电脑的垃圾文件是非常有必要的。那么,mac电脑清理垃圾的软件有哪些?mac电脑怎么清理垃圾呢?本文将为你介绍几款好用的mac清理软件,以及一些简单有效的清理方法。一、mac电脑清理垃圾的软件有哪些市面上有很多专门针对mac电脑的清理软件,它们可以帮助你扫描和删除系统缓存、日志、临时文件、应用程序残留、重复文件等各种垃圾文件,释放更多的可用空间。这里我们推荐几款比较受欢迎和信

c++ - 在 lua 中有没有办法将 upvalue 绑定(bind)到 userdata 值而不是函数?

在下面的示例中,创建了一个userdata值,类型为MyType,并使用元函数__tostring创建了一个表,该元函数调用LI_MyType__tostring。该代码创建了一个基于闭包的luaOOP。我对所提供示例的不满是,似乎只有一种方法可以通过上值将userdata与方法调用相关联。就其本身而言,这不是问题,除非我想跨实例共享相同的元表。在一个理想的世界中——我希望通过这个问题来挖掘——有没有一种方法可以将上值与值(例如userdata)相关联,而无需通过以下方式将其与函数调用相关联升值?我希望有一个技巧可以让我继续使用基于闭包的luaOOP和跨实例共享相同的元表。我并不乐观,

c++ - 玩具垃圾收集 : Is operator new/delete enough?

我正在研究我的一个学习项目(使用C语言),并考虑将其迁移到C++以获得额外的学习点。它的一部分涉及针对特定对象系列的垃圾收集系统,在C中,我通常会使用大型malloc/mmap并使用简单的天真标记和清除(我可以识别引用和类似的东西)已经)。我的问题是我正在考虑将这个想法转移到C++,但我对我对其内存管理方案的理解不够安全。到目前为止,我考虑分配一个大内存池并在基类上重载运算符new和delete以调用我的内存池的抓取/释放函数,然后让垃圾收集器的清理阶段删除它看到的对象。够了吗?我在这里没有看到的隐藏陷阱是什么?编辑:澄清一下,我已经能够计算出分配对象的生命周期,因此无需使用gcabi